package com.example.archive.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.archive.entity.RestrictedArchiveRequest;
import com.example.archive.util.PageParam;
import com.example.archive.util.Result;

/**
 * 受限档案访问申请服务接口
 * 提供受限档案申请的业务逻辑处理
 */
public interface RestrictedArchiveRequestService extends IService<RestrictedArchiveRequest> {
    
    /**
     * 提交受限档案访问申请
     * @param request 申请对象
     * @return 提交结果
     */
    Result<Boolean> submitRequest(RestrictedArchiveRequest request);
    
    /**
     * 分页查询受限档案申请
     * @param pageParam 分页参数
     * @param status 审批状态
     * @param userId 用户ID（申请人）
     * @param approverId 审批人ID
     * @return 分页查询结果
     */
    Result<IPage<RestrictedArchiveRequest>> listRequests(PageParam pageParam, String status, Integer userId, Integer approverId);
    
    /**
     * 审批受限档案访问申请
     * @param requestId 申请ID
     * @param approverId 审批人ID
     * @param approvalStatus 审批状态（approved/rejected）
     * @param notes 审批备注
     * @return 审批结果
     */
    Result<Boolean> approveRequest(Integer requestId, Integer approverId, String approvalStatus, String notes);
    
    /**
     * 根据ID获取申请详情
     * @param requestId 申请ID
     * @return 申请详情
     */
    Result<RestrictedArchiveRequest> getRequestDetail(Integer requestId);
} 